Skip to content

Reduce Async FrameBuffer memory usage - #105

Closed
JasperGeurtz wants to merge 1 commit into
developfrom
implement-memory-safe
Closed

JasperGeurtz wants to merge 1 commit into
developfrom
implement-memory-safe

Conversation

@JasperGeurtz

Copy link
Copy Markdown
Collaborator

from ~33MB to ~4.8MB per slot (#90)

  • Add packed buffer support to WrappedBuffer
  • In FrameBuffer, pack only dynamic game data (4 slices totaling ~4.8MB) instead of copying the full 33MB buffer, and remove frame-0 loop that copied 33MB to all buffers
  • Auto-generate AsyncClientData via DumpToClient:
    • Route dynamic game state reads/writes through offset deltas
    • Route static map/region data reads to the live shared memory buffer
    • Centralize slice boundaries and buffer constants in AsyncClientData as single source of truth for FrameBuffer
  • Keep synchronous mode fully backward-compatible using ClientData directly
  • Wire AsyncClientData in BotWrapperAsync
  • Add AsyncClientDataTest to verify memory size reduction and correct reading of static vs dynamic data

)

- Add packed buffer support to WrappedBuffer
- In FrameBuffer, pack only dynamic game data (4 slices totaling ~4.8MB) instead of copying the full 33MB buffer, and remove frame-0 loop that copied 33MB to all buffers
- Auto-generate AsyncClientData via DumpToClient:
  - Route dynamic game state reads/writes through offset deltas
  - Route static map/region data reads to the live shared memory buffer
  - Centralize slice boundaries and buffer constants in AsyncClientData as single source of truth for FrameBuffer
- Keep synchronous mode fully backward-compatible using ClientData directly
- Wire AsyncClientData in BotWrapperAsync
- Add AsyncClientDataTest to verify memory size reduction and correct reading of static vs dynamic data
@JasperGeurtz

Copy link
Copy Markdown
Collaborator Author

Redundant vs #109

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant